import axios from 'axios'
import { Toast } from 'vant'
import store from '@/store/index'
import router from '@/router/index.js'
let productUrl = '';
// console.log(process.env)
if(process.env.NODE_ENV !== 'dev'){
    // productUrl ="" //线上
}else{
    productUrl = process.env.VUE_APP_BASE_URL || ''
}

const service = axios.create({
    baseURL: productUrl,
    timeout: 5000
})
service.interceptors.request.use(config => {
    // 展示 loading 效果
    Toast.loading({
        message: '加载中...', // 文本内容
        duration: 0 // 展示时长(ms)，值为 0 时，toast 不会消失
    })
    // console.log(store.state.m_user.tokenInfo.token)
    const token = store.state.m_user.tokenInfo.token 
    config.headers['X-Requested-With'] = 'XMLHttpRequest'
    // config.headers['authorization'] = 'Bearer ' + token
    config.headers.Authorization = `Bearer ${token}`
    config.headers['X-ACTION'] = location.hash || ''
    console.log(config.url.indexOf('v1_0'))
    if(config.url.indexOf('v1_0') !== -1){
        config.url=process.env.VUE_APP_BASE_URLUser+config.url
    }
 return config
}, error => {
    return Promise.reject(error)
})
service.interceptors.response.use(response=>{
   Toast.clear()
   return response 
},error =>{
    Toast.clear()
      // 如果有响应的结果，并且响应的状态码是 401，则证明 Token 过期了
      if (error.response && error.response.status === 401) {
        // console.log('token 过期啦')
        // TODO1：清空 vuex 和 localStorage 中的数据
        // store.state.m_user.cleanState()
        // store.commit()
        // console.log(store)
        store.commit('m_user/cleanState')
        // TODO2：强制跳转到登录页，并通过路由的 query 查询参数，把当前用户访问未遂的路由地址带给登录页
        //  router.replace('/user?pre=' + router.currentRoute.fullPath)
        router.replace('/user')

    }
   return Promise.reject(error)
})

export default service

